 app/content/scripts/appInit.js |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git app/content/scripts/appInit.js app/content/scripts/appInit.js
index 516c815..c982363 100644
--- app/content/scripts/appInit.js
+++ app/content/scripts/appInit.js
@@ -155,26 +155,30 @@ function SBAppInitialize()
     // On Windows and Linux, register the songbird:// protocol.
     // (Mac is in the info.plist)
     var platform = Components.classes["@mozilla.org/system-info;1"]
                              .getService(Components.interfaces.nsIPropertyBag2) 
                              .getProperty("name");
     if (platform == "Windows_NT") {
       SBRegisterWindowsSongbirdProtocol();
     }
-    else if (platform == "Linux") {
+    else {
       SBRegisterGConfSongbirdProtocol();
     }
   }
   catch( err ) {
     alert( "SBAppInitialize:SBRegisterSongbirdProtocol()\n" + err );
   }
 }
 
 function SBRegisterWindowsSongbirdProtocol() {
+  if (!("@mozilla.org/windows-registry-key;1" in Components.classes)) {
+    // no windows registry key, probably not Windows
+    return;
+  }
   var path = Components.classes["@mozilla.org/file/directory_service;1"]
                        .getService(Components.interfaces.nsIProperties)
                        .get("CurProcD", Components.interfaces.nsIFile);
   var file = path.clone();
   // It'd be nice if there were a way to look this up. 
   // (mook suggests) ::GetModuleFileNameW(). 
   // http://mxr.mozilla.org/seamonkey/source/browser/components/shell/src/nsWindowsShellService.cpp#264
   file.append("songbird.exe");
@@ -199,24 +203,28 @@ function SBRegisterWindowsSongbirdProtocol() {
   wrk.create(wrk.ROOT_KEY_CURRENT_USER,
              "Software\\Classes\\songbird\\shell\\open\\command",
              wrk.ACCESS_WRITE);
   wrk.writeStringValue("", '"' + file.path + '" "%1"');
   wrk.close();
 }
 
 function SBRegisterGConfSongbirdProtocol() {
+  if (!("@mozilla.org/gnome-gconf-service;1" in Components.classes)) {
+    // gnome-gconf-service doesn't exist
+    return;
+  }
   var path = Components.classes["@mozilla.org/file/directory_service;1"]
                        .getService(Components.interfaces.nsIProperties)
                        .get("CurProcD", Components.interfaces.nsIFile);
   var file = path.clone();
   file.append("songbird");
 
   var gconf = Components.classes["@mozilla.org/gnome-gconf-service;1"]
-                                       .getService(Components.interfaces.nsIGConfService);
+                        .getService(Components.interfaces.nsIGConfService);
   gconf.setString("/desktop/gnome/url-handlers/songbird/command", '"' + file.path + '" "%s"');
   gconf.setBool("/desktop/gnome/url-handlers/songbird/enabled", true);
   gconf.setBool("/desktop/gnome/url-handlers/songbird/needs_terminal", false);
 }
 
 //
 // Called on window-unload of songbird.xul.
 //
-- 
1.5.5.1015.g9d258


